package cn.akwangl.design.pattern.creational.factorymethod;

/**
 * 工厂方法demo
 * <p>
 * JDK-工厂方法示例:
 * <p>
 * URLStreamHandler<br/>
 * <br/>
 * 产品：{@link java.net.URLStreamHandler}<br/>
 * 产品具体的实现：{@link com.sun.deploy.net.protocol.chrome.Handler}<br/>
 * 产品的抽象工厂：{@link java.net.URLStreamHandlerFactory}<br/>
 * 产品具体工厂的实现：{@link sun.misc.Launcher.Factory}<br/>
 * <br/>
 * Iterator<br/>
 * 产品：{@link java.util.Iterator}<br/>
 * 产品具体的实现：{@link java.util.ArrayList.Itr}<br/>
 * 产品的抽象工厂：{@link java.util.Collection}<br/>
 * 产品具体工厂的实现：{@link java.util.ArrayList}<br/>
 * <br/>
 * Logger<br/>
 * 产品：{@link org.slf4j.Logger}<br/>
 * 产品具体的实现：{@link ch.qos.logback.classic.Logger}<br/>
 * 产品的抽象工厂：{@link org.slf4j.ILoggerFactory}<br/>
 * 产品具体工厂的实现：{@link ch.qos.logback.classic.LoggerContext}<br/>
 * </p>
 *
 * @author youyongkun
 * @date 2021/11/23 16:20
 * @since 1.0
 */
public class FactoryMethodTest {

    public static void main(String[] args) {
        AbstractVideoFactory videoFactory = new JavaVideoFactory();
        IVideo video = videoFactory.getVideo();
        video.produce();
    }
}
